7. 버그) Tick, TickComponent 순서 문제

1. Projects/펄어비스 인턴/4주차/__Attachments/Pasted image 20260126151950.png

6. 콜드 런치 애니메이션을 구현하고난 후, 위와 같은 순서로 진행되어서 물리 시뮬레이션 위치가 제대로 되지 않는 문제가 있었다.

아래는 TickRate가 낮을 때, 즉 DeltaSecond가 커졌을 때 훨 씬 더 큰 갭을 만들어 내는 것을 보여준다.
1. Projects/펄어비스 인턴/4주차/__Attachments/Pasted image 20260127101945.png

Tick 구조 개선


Unreal Engine


UnrealEngine/Engine/Source/Runtime/Engine/Classes/Engine/EngineBaseTypes.h at release · EpicGames/UnrealEngine

/** Determines which ticking group a tick function belongs to. */
UENUM(BlueprintType)
enum ETickingGroup : int
{
	/** Any item that needs to be executed before physics simulation starts. */
	TG_PrePhysics UMETA(DisplayName="Pre Physics"),

	/** Special tick group that starts physics simulation. */							
	TG_StartPhysics UMETA(Hidden, DisplayName="Start Physics"),

	/** Any item that can be run in parallel with our physics simulation work. */
	TG_DuringPhysics UMETA(DisplayName="During Physics"),

	/** Special tick group that ends physics simulation. */
	TG_EndPhysics UMETA(Hidden, DisplayName="End Physics"),

	/** Any item that needs rigid body and cloth simulation to be complete before being executed. */
	TG_PostPhysics UMETA(DisplayName="Post Physics"),

	/** Any item that needs the update work to be done before being ticked. */
	TG_PostUpdateWork UMETA(DisplayName="Post Update Work"),

	/** Catchall for anything demoted to the end. */
	TG_LastDemotable UMETA(Hidden, DisplayName = "Last Demotable"),

	/** Special tick group that is not actually a tick group. After every tick group this is repeatedly re-run until there are no more newly spawned items to run. */
	TG_NewlySpawned UMETA(Hidden, DisplayName="Newly Spawned"),

	TG_MAX,
};

https://dev.epicgames.com/documentation/ko-kr/unreal-engine/actor-ticking-in-unreal-engine#틱종속성

AddTickPrerequisiteActor()
AddTickPrerequisiteComponent()

Unity


이벤트 함수 실행 순서(Execution Order of Event Functions) - Unity 매뉴얼

스크립트 실행 순서 설정(Script Execution Order Settings) - Unity 매뉴얼

적용


enum class ETickGroup : unsigned int
{
	ETG_PrePhysics = 0,
	ETG_PostPhysics,
	ETG_None
};

enum class ETickPriority : unsigned int
{
	ETP_High = 0,
	ETP_Middle,
	ETP_Low,
	ETP_None
};
![1. Projects/펄어비스 인턴/4주차/__Attachments/Pasted image 20260128103502.png](/img/user/1.%20Projects/%ED%8E%84%EC%96%B4%EB%B9%84%EC%8A%A4%20%EC%9D%B8%ED%84%B4/4%EC%A3%BC%EC%B0%A8/__Attachments/Pasted%20image%2020260128103502.png)

10. 미사일 폭파시 데미지
여기서 사용한 HitManager(후 MissileGridManager)에서 Tick으로 제어해도 됬을 것 같음.